/*
如果一个数是质数，而且他在质数表中的编号也是质数，称为特殊的质数。比如质数表中第7个质数是17，因为7和17都是质数，所以我们称17是特殊的质数；比如第10个质数是29，因为10不是质数，所以29不是特殊的质数。现给定非负整数n，求<=n的最大的特殊的质数。
Input
多组输入数据n（0<=n<=10^6）。
Output
输出小于等于n的最大的特殊的质数，对于给定的n如果不存在这样的质数，输出-1。
Sample Input
0
20
50
60
Sample Output
-1
17
41
59
*/
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
#define MAX 10000001 // 10^7+1
int a[MAX + 1];      // 素数数组
int b[MAX + 1];      // 素数标记数组,0为素数，1为其他
int num = 0;
typedef long long LL;
void xianshai() // 线性筛
{
    LL i, j;
    memset(b, 0, sizeof(b)); // 初始化为0，全为素数
    b[0] = b[1] = 1;
    // 筛选i = 2~MAX的数
    for (i = 2; i < MAX; i++)
    {
        if (b[i] == 0)
        {
            a[++num] = i;
        }
        // 去除MAX范围内素数i的倍数
        for (j = 1; j <= num && i * a[j] < MAX; j++) // j=2优化为j=i
        {
            b[i * a[j]] = 1;
            if (i % a[j] == 0)
                break;
        }
    }
}

int main()
{
    int n, i, ans;
    xianshai();
    while (cin >> n)
    {
        ans = -1;
        for (i = 1; i <= num; i++)
        {
            if (a[a[i]] > n)
            {
                break;
            }
            else
            {
                ans = a[a[i]];
            }
        }
        cout << ans << endl;
    }
    return 0;
}
